/**
 * Copyright(c) by JNet Smartware Group.
 * All rights reserved. Not distribution or redistribution without
 * any permission of JNet Smartware Group.
 * 
 * @author thuc
 * 2010/07/31
 */
package vn.smartware.co.server.sql.factory;

import java.sql.Connection;

import vn.smartware.co.dto.MstRoomDTO;
import vn.smartware.co.dto.MstRoomPriceDTO;
import vn.smartware.co.forms.RegisterRoomForm;
import vn.smartware.co.framework.bean.LoginDTO;
import vn.smartware.co.framework.db.factory.SQLManager;
import vn.smartware.co.framework.exception.ServerException;

/**
 * @author thuctt
 * AbstractRegisterRoomSQLManager
 */
public abstract class AbstractRegisterRoomSQLManager extends SQLManager {

	/**
	 * get room list
	 * @param form 
	 * @param user 
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void getRoomsSQL(RegisterRoomForm form, LoginDTO user,
			Connection conn) throws ServerException;

	/**
	 * makeDeletePriceListSQL
	 * @param roomNo
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeDeletePriceListSQL(String roomNo, LoginDTO user,
			Connection conn) throws ServerException;

	/**
	 * makeDeleteRoomSQL
	 * @param roomNo
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeDeleteRoomSQL(String roomNo, LoginDTO user,
			Connection conn) throws ServerException;

	/**
	 * makeRegisterPriceSQL
	 * @param roomNo 
	 * @param price
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeRegisterPriceSQL(String roomNo, MstRoomPriceDTO price,
			LoginDTO user, Connection conn) throws ServerException;

	/**
	 * makeRegisterRoomSQL
	 * @param room
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeRegisterRoomSQL(MstRoomDTO room, LoginDTO user,
			Connection conn) throws ServerException;

	/**
	 * makeUpdateRoomSQL
	 * @param room
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeUpdateRoomSQL(MstRoomDTO room, LoginDTO user,
			Connection conn) throws ServerException;

	/**
	 * get max room no
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void getMaxRoomNoSQL(Connection conn)
			throws ServerException;

	/**
	 * update room status
	 * @param roomNo
	 * @param reserveStatus
	 * @param conn 
	 * @param user 
	 * @throws ServerException
	 */
	abstract public void makeUpdateRoomStatus(String roomNo, String reserveStatus,
			LoginDTO user, Connection conn) throws ServerException;

	/**
	 * reset room status to free
	 * @param roomNo
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeResetRoomStatus(String roomNo, LoginDTO user,
			Connection conn) throws ServerException;

}
